package com.wuster.service;

import com.wuster.entity.dto.ClockDTO;
import com.wuster.entity.dto.FreeUpdateDTO;
import com.wuster.entity.dto.PageDTO;
import com.wuster.entity.dto.ReportDTO;
import com.wuster.entity.vo.FreeTimesVO;
import com.wuster.result.PageResult;
import org.springframework.transaction.annotation.Transactional;

import java.sql.Date;
import java.util.List;

@Transactional(rollbackFor = RuntimeException.class)
public interface StudentService {

    /**
     * 学生打卡
     * @param clockDTO
     */
    void toClock(ClockDTO clockDTO);

    /**
     * 个人打卡记录
     * @return
     */
    PageResult selectPage(PageDTO pageDTO);

    /**
     * 学生新增周报
     * @param reportDTO
     * @return
     */
    void addReport(ReportDTO reportDTO);

    /**
     * 个人周报查询
     * @param startDate
     * @param endDate
     * @return
     */
    PageResult getReport(Date startDate, Date endDate, Integer pageId, Integer pageSize);

    /**
     * 学生----空闲时间段查询
     * @param weekId
     * @return
     */
    List<FreeTimesVO> getfree(Integer weekId);

    /**
     * 学生---空闲时间修改
     * @param freeUpdateDTOList
     */
    void setFreeTime(FreeUpdateDTO[] freeUpdateDTOList);
}
